
设置log4j日志级别
我目前正在使用log4j的项目中。我正在运行一个测试用例(junit),并希望将日志级别设置为跟踪,以便我可以查看所有值是否正确。在项目中使用日志记录的类包含如下一行:private static final Log LOG = LogFactory.getLog(MatchTaskTest.class);并使用类似这样的命令进行实际调试LOG.trace("value");我以前从未使用过l...
2024-01-10
通过JVM参数进行log4j配置?
为了使log4j正常运行,我必须设置/传递哪些变量作为JVM的参数?正确地说,我的意思是不要抱怨并打印到控制台。我可以看一个典型的例子吗?注意:我需要避免在应用程序中创建log4j.properties文件。回答:您是否有一个log4j配置文件?只需使用-Dlog4j.configuration={path to file}{文件路径}的前缀 file: 如果...
2024-01-10
在log4j xml配置中使用系统环境变量
是否可以在log4j xml配置文件中引用系统环境变量(与Java系统属性相反)?我希望能够执行以下操作:<level value="${env.LOG_LEVEL}" />并使其从系统环境变量中获取,因此我可以避免必须通过-D参数传递太多内容。回答:仅在log4j 2.X中记录了此语法,因此请确保使用正确的版本。它不适用于1.X版本。 <App...
2024-01-10
多模块Maven项目中的log4j配置文件
我正在研究一个多模块Maven项目,其结构如下:war-modulejar-modulewar模块取决于jar模块,并将打包后将jar工件添加到webapp的lib目录中。war模块和jar模块都使用Apachelog4j进行日志记录,并共享相同的log4j配置文件(log4j.xml),该文件当前位于jar模块项目中。并且此log4j.xml将打包到jar-module.jar文件中,但是...
2024-01-10
log4j干扰-级别始终设置为“ OFF”
我试图在我的应用程序中设置log4j,但我的第三方JAR之一似乎以某种方式将日志级别设置为“OFF”。仅当执行该库中的代码时才会发生。我不知道它如何做到这一点,因为我没有使用它知道名称的记录器,也没有使用根记录器。我为此花了5个小时,到目前为止,我唯一的成就就是获得超过9000的挫败感...
2024-01-10
如何配置log4j只保留最近7天的日志文件?
log4j对于用于记录的几个Java应用程序,我遇到以下记录问题:我希望日志文件每天轮换,例如log.2010-09-10log.2010-09-09log.2010-09-08log.2010-09-07log.2010-09-06log.2010-09-05log.2010-09-04但是出于数据安全的原因,我们不允许将日志文件在我公司中保留超过7天。因此,下一个下一个日志文件的生成log.2010-09-11应触...
2024-01-10
如何指定Log4J 2.x配置位置?
有什么方法可以log4j2.xml手动指定Log4J 2.x 文件位置(例如DOMConfigurator在Log4J1.x中),而又不会弄乱类路径和系统属性?回答:您可以在中使用static方法#initialize(String contextName, ClassLoader loader, StringconfigLocation)(请参见此处的源代码)org.apache.logging.log4j.core.config.Configurator。(您可以为类加载器传递null。...
2024-01-10
Liferay Portlet Log4j属性文件配置
我想用自己的log4j配置配置我的Liferay portlet项目。我遵循以下文章,它对我来说工作正常。Liferay Portlet Log4j属性文件配置https://web.liferay.com/web/brett.swaim/blog/-/blogs/using-log4j-to-ensure-each-portlet-has-it-s-own-log-file现在我需要使用instated的log4j.xml的file.So我已删除的log4j.xml log4j.properties文件,...
2024-01-10
Java以编程方式配置Log4j记录器
我正在尝试log4j第一次使用SLF4J(带绑定)。我想配置3个不同的命名Logger,它们可以由LoggerFactory返回,LoggerFactory将记录不同的级别并将消息推送到不同的附加程序:记录器1“ FileLogger”记录调试并附加到 DailyRollingFileAppender记录器2“ TracingLogger”记录TRACE +并追加到JmsAppender记录器3“ ErrorLogger”记录ER...
2024-01-10
如何用一个log4j配置文件创建两个单独的日志文件?
我不知道如何配置我的log4j,以便我的debugLog和reportLog彼此分开(不是附加的)。为什么在以下配置中,reportsLog始终为空?log4j.rootLogger=TRACE, stdout, debugLoglog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout...
2024-01-10
如何在log4j.xml中设置CATALINA_HOME?
我需要这样的东西:“参数名称=”文件“值=” $ {CATALINA_HOME} /logs/log4j.log“我看到了很多类似的问题,但是没有有效的解决方案。回答:您可以执行以下操作:CATALINA_HOME使用-D选项发送作为环境变量。你只需要跑步set JAVA_OPTS=%JAVA_OPTS% -DCATALINA_HOME=%CATALINA_HOME%如果您使用的是Windows或export JAVA_OPTS=${JA...
2024-01-10
如何设置log4j属性,以便每个线程输出到其自己的日志文件?
我有在任何给定时间运行的线程类的多个实例。我有用于日志记录需求的log4j设置。我需要一种设置log4j的方法,以便线程类的每个实例在不同的日志文件中输出其日志。这是我所做的(用伪代码)public class doSomething extends Thread { private Logger d_logger; public doSomething(int id){ d_logger = Logger.getLogge...
2024-01-10
log4j ConversionPattern时间戳(以微秒为单位)
我想在用log4j生成的日志文件的每个条目的时间戳中添加微秒,这可能吗?我已经搜索了官方文档,但是没有提到毫秒以下的单位。现在我有一个转换模式,如下所示:%d{dd/MM/yyyy HH\:mm\:ss,SSS} %-5p [%t] - %m%n在日期转换模式( )之后添加 ,有没有办法做到这一点? *回答:如果要显示微秒,则需要自...
2024-01-10
Log4j 与 SLF4J:4 个差异以及何时同时使用两者
关键点Log4j和SLF4J是Java程序中常用的日志库。Log4j 是一个日志框架,而 SLF4J 是一个可以与不同日志框架配合使用的 API。Log4j 具有更精确的分层日志记录协议,而 SLF4J 采用不太复杂的方法。Log4j 享有更多的社区支持并具有更好的性能,但 SLF4J 提供了更多的灵活性和可移植性。Log4j 和 SLF4J 之间的选择取决于特定的用例和偏好。J...
2024-02-03
log4j的是在
我log4j属性创建日志,manual.log,manual.log.1所以如下,log4j的是在#Application Logger log4j.rootLogger=DEBUG,file #log4j.rootLogger=DEBUG,file,console log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=../common/logs/api/log4j-app.log log4j.a...
2024-01-10
log4j:当前时间(以毫秒为单位)
在log4j.properties我可以设置PatternLayout例如("[%p] %c - %m - %d %n")是否有任何符号(%something)以毫秒为单位返回当前时间?回答:没有完全符合您需要的Log4J符号。%d以给定的模式返回当前日期,该模式由SimpleDateFormat(放在方括号之间的模式)定义,但是没有给您以毫秒为单位的时间。%r给出自 毫秒数。...
2024-01-10
Log4j中带有日期的文件名
我正在尝试将当前日期附加到log4j日志文件中。所以会是这样的:myApp-2011-01-07.log事实是,我不想使用DailyRollingFileAppender。原因是每天将运行另一个脚本,该脚本将备份logs文件夹中的所有内容。它在Tomcat5.5下运行。在log4j中可以吗?回答:我认为您可以在代码中设置系统属性以包含当前日期:static{ ...
2024-01-10
在log4j中使用系统属性或变量
我想这样做:<appender name="ErrorLog" class="org.apache.log4j.FileAppender"> <param name="File" value="${error.log.path}"/> <param name="Append" value="true" /> <param name="Threshold" value="ERROR"/> <layout class="org.apache.log4j.P...
2024-01-10
log4j不打印异常的堆栈跟踪
我在tomcat中使用log4j。当我在JSP中记录异常时,servlet:private Logger _log = Logger.getLogger(this.getClass());...try{...} catch (Exception e) { _log.error("Error refreshing all prices", e);}我只得到异常的第一行,没有堆栈跟踪。17-Feb17:37:45错误AutoContrib:175-发布csv文件时发生异常:java.lang.ArrayI...
2024-01-10
压缩Log4j文件
是否可以压缩日志文件(我通过RollingFileAppender进行压缩)?回答:log4jExtras支持该功能。只需在RollingFileAppender配置中添加以下内容,文件名以 结尾即可自动压缩日志文件:<appender...> <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> <param name="FileNamePattern" value="/wombat/foo.%d{y...
2024-01-10
如何正确初始化log4j?
将log4j添加到我的应用程序后,每次执行我的应用程序时,都会得到以下输出:log4j:WARN No appenders could be found for logger (slideselector.facedata.FaceDataParser).log4j:WARN Please initialize the log4j system properly.看来这意味着缺少配置文件。此配置文件应位于何处,什么是良好的入门内容?我使用纯Java开发桌面应用程序...
2024-01-10
如何在多个类中使用log4j?
我目前正在用Java编写一个大型项目,其中包含许多类,有些类很小,只用很少的方法表示对象。我的主班有一个记录器,它运行良好。我希望所有类只能使用一个记录器(带有一个控制台附加程序)。我试图将对记录器的引用传递给不同的类,但是看起来不正确。此外,有时我在不运行main的情况下在...
2024-01-10
log4j中的自定义模式布局未被使用
我想在此article中提到的log4j中创建自定义布局。log4j中的自定义模式布局未被使用我创建了一个简单CustomLayout像下面 -public class CustomLayout extends PatternLayout { public String format(LoggingEvent event) { return "Custom Layout"; } } 一个简单的自定义添加器看起来像下面public class DummyAppender ex...
2024-01-10
在log4j中使用MDC动态命名日志文件
是否有可能在运行时使用MDC命名日志文件。我有一个单独的Web应用程序,该应用程序同时使用tomcat docbase被不同的名称调用。因此,我需要为每个文件设置单独的日志文件。回答:这可以在Logback(Log4J的后继者)中完成。Logback旨在作为流行的log4j项目的后继者,从log4j离开的地方接手。请参阅文档...
2024-01-10
Log4j2创建日志文件,但不写入日志文件
我正在使用Tomcat 8.0.3和log4j 2.0-rc1部署GWT应用程序(Servlet 2.5)。我相信我已修复了通常的日志配置错误,但仍然没有任何内容记录到控制台或文件中。我的 头:<listener> <listener-class>org.apache.logging.log4j.core.web.Log4jServletContextListener</listener-class></listener><filter> <filter-name>log4jServletFi...
2024-01-10
如何将所有日志从休眠和春季重定向到log4j2?
我使用下一个技术堆栈构建“ superWebApp”:persistence provider - Hibernate 4.xwebMvc and beans container - Spring 4.xweb containter - Tomcat 7.5.x我的任务是将所有日志写入db。分别为每个日志记录框架进行操作将很痛苦。这就是为什么我需要将所有日志重定向到单个框架,然后使用DBAppender并不是问题。我正在考虑log4j2...
2024-01-10
Log4j2覆盖过去的日志文件
我正在使用Log4j2 ver 2.3log4j2.xml看起来像:<?xml version="1.0" encoding="UTF-8"?><Configuration><Appenders> <RollingFile name="RollingFile" fileName="${sys:catalina.base}/logs/catalina.${date:yyyy-MM-dd}.log" filePattern="${sys:ca...
2024-01-10
已创建Log4j2文件,但未写入日志
我已将log4j2与springboot一起使用,已创建日志文件,但未将日志写入文件中。name=PropertiesConfigproperty.filename = /export/home/apps/logsappenders = console, fileappender.console.type = Consoleappender.console.name = STDOUTappender.console.layout.type = PatternLayoutappender.console.la...
2024-01-10
按需重新加载log4j2配置
我将log4j2.xml配置文件设置为每30秒检查一次:<Configuration status="WARN" monitorInterval="30"> ...</Configuration>是否可以以编程方式告诉log4j2检查配置中的更改而不是超时? 我不想以编程方式加载指定配置文件的配置,我只想告诉log4j2检查MonitorInterval过期之前已加载的配置文件。谢谢!回答:看来我找到...
2024-01-10
使用环境变量将log4j2.xml文件加载到项目外部
我正在为TomCat 7.0服务器开发Java Web应用程序(v3.0),但在加载log4j2.xml文件时遇到了麻烦。我已经在log4j2.xml项目外部定义了文件,并在web.xml文件中定义了文件的路径。如果我对路径进行硬编码,则log4j2.xml文件将按原样加载。<context-param> <param-name>log4jConfiguration</param-name> <param-value>file:///C:/my/path/l...
2024-01-10
Log4j2自定义过滤器
我试图在Log4J2中实现和配置自定义过滤器-基于ThresholdFilter,但打算做更多。我已经看到了有关自定义追加程序的主题,这些主题遵循相同的插件注释语法,但是还没有找到有关自定义拟合程序的主题。 (基于ThresholdFilter)@Plugin(name = "MyCustomFilter", category = Node.CATEGORY, elementType = Filter.ELEMENT_TYPE, printObjec...
2024-01-10
log4j2中基于时间的触发策略
我试图每小时创建一个新的日志文件。我在RollingFileAppender中使用lo4j2的TimeBasedTriggerringPolicy。以下是我从log4j2官方站点获取的示例xml配置代码。<?xml version="1.0" encoding="UTF-8"?><Configuration status="warn" name="MyApp" packages=""> <Appenders> <RollingFile name="RollingFile" fileName="...
2024-01-10
以编程方式加载Log4j2配置文件
我想以编程方式从应用程序中加载Log4j2 XML配置文件。试过这个:ConfigurationSource source = new ConfigurationSource();source.setLocation(logConfigurationFile);Configurator.initialize(null, source);还有这个:ConfigurationSource source = new ConfigurationSource();source.setLocation(logConfi...
2024-01-10
找不到log4j2配置文件。使用默认配置:仅将错误记录到控制台
$ java -Dlog4j.configuration=file:///path/to/your/log4j2.xml -jar /path/to/your/jar_file.jar写入控制台,您得到ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.但是,看起来配置文件也已找到并且无法解析: log4j:WARN ...
2024-01-10
